package org.example.hansp.array_.arraydemo;

import java.util.Arrays;

public class ArrayRandom {
    public static void main(String[] args) {
        int[] arr = new int[10];
//        随机生成10个数，并存入数组中
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int) (Math.random() * 100);
        }
//随机生成的数组中是否存在8
        System.out.println(arraySearch(arr, 8));
//        求最大值
        System.out.println(arrayMax(arr));

//        反转数组
        arrayReverse(arr);
        System.out.println(Arrays.toString(arr));
//        求平均值
        System.out.println(arrayAverage(arr));

    }

    /**
     * 数组反转
     * @param arr   原数组
     * @return      反转后数组
     */
    public static int[] arrayReverse(int[] arr) {
        for (int i = 0; i < arr.length / 2; i++) {
            int temp = arr[i];
            arr[i] = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = temp;
        }
        return arr;
    }

    /**
     * 求数组中最大值及其下标
     * @param arr   传入数组
     * @return  max最大值
     */
    public static int arrayMax(int[] arr) {
        int max = arr[0];

        for (int j : arr) {
            if (j > max) {
                max = j;

            }
        }
        return max;
    }

    /**
     * 查找数组中是否含有该值
     * @param arr   所查找的数组
     * @param target    所查找的值
     * @return  结果true：有 false：没有
     */
    public static boolean arraySearch(int[] arr, int target) {
        boolean found = false;
        for (int i : arr) {
            if (i == target) {
                found = true;
                break;
            }
        }
        return found ;
    }

    /**
     * 求数组平均值
     * @param arr 要求平均值的数组
     * @return 平均值
     */
    public static int arrayAverage(int[] arr) {
        int sum = 0;
        for (int j : arr) {
            sum += j;
        }
        return sum / arr.length;
    }
}
